<?php
/** 
 * @author felipe
 * 
 * 
 */
class App_Model_Distribuicao extends Voitech_Model {
	
    protected $coDistribuicao;
    protected $obUnidade;
    protected $arItemDistribuicao;
    protected $obUsuario;
    protected $dtDistribuicao;
    protected $nuTotalAtendido;
    
    public function setDtDistribuicao($dtDistribuicao) {
        $this->dtDistribuicao = $dtDistribuicao;
        return $this;
    }

    
    /**
     * @return the $coDistribuicao
     */
    public function getCoDistribuicao() {
            return $this->coDistribuicao;
    }

    /**
     * @return App_Model_Usuario the $obUsuario
     */
    public function getObUsuario() {
            return $this->obUsuario;
    }

    /**
     * @param $coDistribuicao the $coDistribuicao to set
     */
    public function setCoDistribuicao($coDistribuicao) {
            $this->coDistribuicao = (int) $coDistribuicao;
            return $this;
    }

    /**
     * @param $obUsuario the $obUsuario to set
     */
    public function setObUsuario(App_Model_Usuario $obUsuario) {
            $this->obUsuario = $obUsuario;
            return $this;
    }

    public function adicionarItemDistribuicao(App_Model_ItemDistribuicao $obItemDistribuicao) {
            $this->arItemDistribuicao[] = $obItemDistribuicao;
            return $this;
    }

    /**
     * @return the $dtDistribuicao
     */
    public function getDtDistribuicao() {
            return $this->dtDistribuicao;
    }

    /**
     * @return App_Model_Unidade the $obUnidade
     */
    public function getObUnidade() {
            return $this->obUnidade;
    }

    /**
     * @param App_Model_Unidade the $obUnidade to set
     */
    public function setObUnidade(App_Model_Unidade $obUnidade) {
            $this->obUnidade = $obUnidade;
    }

    public function getArItemDistribuicao() {
            return $this->arItemDistribuicao;
    }
    
    public function getNuTotalAtendido(){
        return $this->nuTotalAtendido;
    }

   /**
    * fechar uma distribuicao
    *
    * @param App_Model_Unidade $obUnidade
    * @param App_Model_Usuario $obUsuario
    * @return App_Model_Distribuicao
    */
   public function fecharDistribuicao(App_Model_Unidade $obUnidade, App_Model_Usuario $obUsuario) {

        if ( $obUnidade->getCoUnidade() < 1 ) {
            throw new Voitech_Exception('Favor informar a unidade.');
        }

        if ( $obUsuario->getCoPessoa() < 1 ) {
            throw new Voitech_Exception('Favor informar o usuário.');
        }
        
        if( empty($this->arItemDistribuicao) ){
            throw new Voitech_Exception('Favor enviar os itens da distribuição.');
        }
        foreach($this->arItemDistribuicao as $itemDistribuicao){
            $this->nuTotalAtendido += $itemDistribuicao->getNuQuantidadeAtendida(); 
        }

        $this->obUnidade = $obUnidade;
        $this->obUsuario = $obUsuario;
       	return $this;
   }
}